Inside Macintosh: QuickTime Components

Previous | Chapter Top | Chapter Contents | Next

Component Manager Request Codes

As with all components, your channel component receives its requests from the Component Manager in the form of request codes. Apple strongly recommends that you fully support all of the Component Manager's request codes in your channel component--especially the target request. Developers will want to extend the capabilities of the sequence grabber channel components. The Component Manager's CaptureComponent function, which uses the target request, is the most convenient mechanism for obtaining the services of a component and then extending those services. If your channel component does not support the target request, then it cannot be used by applications or other components in this manner. You can use the following constants to refer to the request codes for each of the functions that your channel component must support.

    /* basic sequence grabber channel component selectors */
    kSGSetGWorldSelect                      = 0x4;      /* SetGWorld */     
    kSGStartPreviewSelect                   = 0x10;     /* SGStartPreview */
    kSGStartRecordSelect                    = 0x11;     /* SGStartRecord */
    kSGIdleSelect                           = 0x12;     /* SGIdle */
    kSGStopSelect                           = 0x13;     /* SGStop */
    kSGPauseSelect                          = 0x14;     /* SGPause */
    kSGPrepareSelect                        = 0x15;     /* SGPrepare */
    kSGReleaseSelect                        = 0x16;     /* SGRelease */
    kSGUpdateSelect                         = 0x27;     /* SGUpdate */

    /* selectors for common channel configuration functions */
    kSGCSetChannelUsageSelect               = 0x80; /* SGCSetChannelUsage */
    kSGCGetChannelUsageSelect               = 0x81; /* SGCGetChannelUsage */
    kSGCSetChannelBoundsSelect              = 0x82; /* SGCSetChannelBounds */
    kSGCGetChannelBoundsSelect              = 0x83; /* SGCGetChannelBounds */
    kSGCSetChannelVolumeSelect              = 0x84; /* SGCSetChannelVolume */
    kSGCGetChannelVolumeSelect              = 0x85; /* SGCGetChannelVolume */
    kSGCGetChannelInfoSelect                = 0x86; /* SGCGetChannelInfo */
    kSGCSetChannelPlayFlagsSelect           = 0x87; /* SGCSetChannelPlayFlags */
    kSGCGetChannelPlayFlagsSelect           = 0x88; /* SGCGetChannelPlayFlags */
    kSGCSetChannelMaxFramesSelect           = 0x89; /* SGCSetChannelMaxFrames */
    kSGCGetChannelMaxFramesSelect           = 0x8a; /* SGCGetChannelMaxFrames */
    kSGCSetChannelRefConSelect              = 0x8b; /* SGCSetChannelRefCon */
    kSGCSetChannelClipSelect                = 0x8C;  /* SGCSetChannelClip */
    kSGCGetChannelClipSelect                = 0x8D;  /* SGCGetChannelClip */
    kSGCGetChannelSampleDescriptionSelect = 0x8E;
                                                    /* SGCGetChannelSampleDescription */
    kSGCGetChannelDeviceListSelect              = 0x8F;     /* SGCGetChannelDeviceList */
    kSGCSetChannelDeviceSelect                  = 0x90;     /* SGCSetChannelDevice */
    kSGCSetChannelMatrixSelect                  = 0x91;     /* SGCSetChannelMatrix */
    kSGCGetChannelMatrixSelect                  = 0x92;     /* SGCGetChannelMatrix */
    kSGCGetChannelTimeScaleSelect               = 0x93;     /* SGCGetChannelTimeScale */

    /* selectors for video channel configuration functions */
    kSGCGetSrcVideoBoundsSelect                     = 0x100;    /* SGCGetSrcVideoBounds */
    kSGCSetVideoRectSelect                          = 0x101;    /* SGCSetVideoRect */
    kSGCGetVideoRectSelect                          = 0x102;    /* SGCGetVideoRect */
    kSGCGetVideoCompressorTypeSelect                = 0x103;
                                                    /* SGCGetVideoCompressorType */

    kSGCSetVideoCompressorTypeSelect                = 0x104;
                                                    /* SGCSetVideoCompressorType */
    kSGCSetVideoCompressorSelect                    = 0x105;    /* SGCSetVideoCompressor */
    kSGCGetVideoCompressorSelect                    = 0x106 ;   /* SGCGetVideoCompressor */
    kSGCGetVideoDigitizerComponentSelect            = 0x107;
                                                    /* SGCGetVideoDigitizerComponent */
    kSGCSetVideoDigitizerComponentSelect= 0x108;
                                                    /* SGCSetVideoDigitizerComponent */
    kSGCVideoDigitizerChangedSelect                 = 0x109;
                                                    /* SGCVideoDigitizerChanged */
    kSGCSetVideoBottlenecksSelect                   = 0x10a;
                                                    /* SGCSetVideoBottlenecks */
    kSGCGetVideoBottlenecksSelect                   = 0x10b;
                                                    /* SGCGetVideoBottlenecks */
    kSGCGrabFrameSelect                             = 0x10c;    /* SGCGrabFrame */
    kSGCGrabFrameCompleteSelect                     = 0x10d;
                                                    /* SGCGrabFrameComplete */
    kSGCDisplayFrameSelect                          = 0x10e;    /* SGCDisplayFrame */
    kSGCCompressFrameSelect                         = 0x10f;    /* SGCCompressFrame */
    kSGCCompressFrameCompleteSelect                 = 0x110;
                                                            /* SGCCompressFrameComplete */
    kSGCAddFrameSelect                              = 0x111; /* SGCAddFrame */
    kSGCTransferFrameForCompressSelect              = 0x112;
                                                        /* SGCTransferFrameForCompress */
    kSGCSetCompressBufferSelect                     = 0x113;     /* SGCSetCompressBuffer */
    kSGCGetCompressBufferSelect                     = 0x114;     /* SGCGetCompressBuffer */
    kSGCGetBufferInfoSelect                         = 0x115;     /* SGCGetBufferInfo */
    kSGCSetUseScreenBufferSelect                    = 0x116;     /* SGCSetUseScreenBuffer */
    kSGCGetUseScreenBufferSelect                    = 0x117;     /* SGCGetUseScreenBuffer */
    kSGCGrabCompressCompleteSelect                  = 0x118;    
                                                    /* SGCGrabCompressComplete */
    kSGCDisplayCompressSelect                       = 0x119; /* SGCDisplayCompress */
    kSGCSetFrameRateSelect                          = 0x11A; /* SGCSetFrameRate */
    kSGCGetFrameRateSelect                          = 0x11B; /* SGCGetFrameRate */

    /* selectors for sound channel configuration functions */
    kSGCSetSoundInputDriverSelect               = 0x100; /* SGCSetSoundInputDriver */
    kSGCGetSoundInputDriverSelect               = 0x101; /* SGCGetSoundInputDriver */
    kSGCSoundInputDriverChangedSelect           
                                                = 0x102;    /* SGCSoundInputDriverChanged */
    kSGCSetSoundRecordChunkSizeSelect
                                                = 0x103;
                                                        /* SGCSetSoundRecordChunkSize */
    kSGCGetSoundRecordChunkSizeSelect               = 0x104;
                                                        /* SGCGetSoundRecordChunkSize */
    kSGCSetSoundInputRateSelect                     = 0x105; /* SGCSetSoundInputRate */
    kSGCGetSoundInputRateSelect                     = 0x106; /* SGCGetSoundInputRate */
    kSGCSetSoundInputParametersSelect               = 0x107;
                                                        /* SGCSetSoundInputParameters */
    kSGCGetSoundInputParametersSelect               = 0x108;
                                                        /* SGCGetSoundInputParameters */
    /* selectors for channel control functions */
    kSGCInitChannelSelect                           = 0x180; /* SGCInitChannel */
    kSGCWriteSamplesSelect                          = 0x181; /* SGCWriteSamples */
    kSGCGetDataRateSelect                           = 0x182; /* SGCDataRate */
    kSGCAlignChannelRectSelect                      = 0x183;    /* SGAlignChannelRect */
};

© 1997 Apple Computer, Inc.

Previous | Chapter Top | Chapter Contents | Next